Basics of cloud
Servers and Data Centers
- Server: A computer that provides data or services to clients over a network.
- Types of servers include:
- Web Server: Hosts websites and serves web pages to users.
- Database Server: Manages and serves databases for applications.
- Mail Server: Handles email delivery and management.
- Types of servers include:
- Data Centers:
- Definition: Secure facilities hosting servers, networks, and storage devices.
- Features: Climate control, power supplies, and physical security ensure optimal conditions.
- Ownership Models:
- On-premises Data Centers: Managed by organizations, involving high costs for hardware, software, facilities, and staffing.
- Cloud Model: Providers (e.g., AWS) manage data centers, offering resources on a pay-as-you-go basis.
Virtual Machines (VMs)
- Definition: Software-based emulation of a physical computer.
- Host: Physical computer running the VMs.
- Hypervisor: Software layer managing resource allocation (CPU, memory, disk, network) for VMs.
- Multiple VMs: Can run on a single host, each with its own OS and applications.
Benefits of VMs:
- Cost Savings: Reduce hardware costs by running multiple VMs on one physical machine.
- Efficiency: Improve resource utilization, reducing waste from underused servers.
- Reusability and Portability: VM images can be cloned and moved easily across hosts.
Cloud and VMs:
- VMs are the building blocks of cloud computing.
- Services like Amazon EC2 let users create and manage VMs in a scalable, pay-as-you-go model.
SDLC Phases

- Plan: Define project goals, resources, and a roadmap to guide development.
- Analyze: Collect and document detailed software requirements in an SRS document.
- Design: Create a technical blueprint and specify architectures in a design document.
- Develop: Write the code to build the software according to the design specifications.
- Test: Verify software functionality, identify defects, and ensure it meets requirements.
- Implement: Deploy the application in a production environment for end-user access.
- Maintain: Monitor, update, and enhance the software to meet evolving needs.